home *** CD-ROM | disk | FTP | other *** search
- @ECHO OFF
- REM This is ANSIKEY.BAT
- REM This won't work unless ANSI.SYS is loaded and KEY.COM is handy!
- REM It will work with ALL keys EXCEPT the GREY arrow keys,
- REM GREY Home/End, GREY Page Up/Down, and GREY Ins/Del.
- SET OP=%PROMPT%
- FOR %%A IN (F S ST YN CR EX1 EX2) DO SET %%A=
- IF %1!==! GOTO NOSTRING
- SET ST=%1
- :TOP
- SHIFT
- IF %1!==! GOTO DONE
- SET ST=%ST% %1
- GOTO TOP
- :DONE
- ECHO Press the key you want to assign %ST% to . . .
- KEY
- IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 SET EX1=Y
- IF NOT %EX1%!==Y! GOTO SKIP
- ECHO Please verify this by pressing that key again . . .
- KEY /F
- :SKIP
- FOR %%A IN (0 1) DO IF ERRORLEVEL %%A00 SET F=%%A
- FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %F%%%A0 SET F=%F%%%A
- FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %F%%%A SET F=%F%%%A
- IF %EX1%!==Y! SET F=0;%F%
- ECHO Do you want a carriage return at the end of %ST% (Y/N)?
- KEY
- IF ERRORLEVEL 121 IF NOT ERRORLEVEL 122 SET CR=;13
- IF ERRORLEVEL 89 IF NOT ERRORLEVEL 90 SET CR=;13
- ECHO ON
- PROMPT $E[%F%;"%ST%"%CR%p
- GOTO RESET
- :NOSTRING
- ECHO Press the key you want to change . . .
- KEY
- IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 SET EX1=Y
- IF NOT %EX1%!==Y! GOTO SKIP2
- ECHO Please verify this by pressing that key again . . .
- KEY /F
- :SKIP2
- FOR %%A IN (0 1) DO IF ERRORLEVEL %%A00 SET F=%%A
- FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %F%%%A0 SET F=%F%%%A
- FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %F%%%A SET F=%F%%%A
- IF %EX1%!==Y! SET F=0;%F%
- ECHO Okay, now press the key you want to change it to . . .
- KEY
- IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 SET EX2=Y
- IF NOT %EX2%!==Y! GOTO SKIP3
- ECHO Please verify this by pressing that key again . . .
- KEY /F
- :SKIP3
- FOR %%A IN (0 1) DO IF ERRORLEVEL %%A00 SET S=%%A
- FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %S%%%A0 SET S=%S%%%A
- FOR %%A IN (0 1 2 3 4 5 6 7 8 9) DO IF ERRORLEVEL %S%%%A SET S=%S%%%A
- IF %EX2%!==Y! SET S=0;%S%
- ECHO ON
- PROMPT $E[%F%;%S%p
- PROMPT $E[10;13p
- :RESET
- SET PROMPT=%OP%
- @ECHO OFF
- CLS
- IF NOT EXIST RESET.BAT GOTO WIPEIT
- ECHO Do you want to AVOID wiping out your existing RESET batch file (Y/N)?
- KEY
- IF ERRORLEVEL 121 IF NOT ERRORLEVEL 122 GOTO CONTIN
- IF ERRORLEVEL 89 IF NOT ERRORLEVEL 90 GOTO CONTIN
- :WIPEIT
- ECHO @ECHO ON > RESET.BAT
- :CONTIN
- ECHO @PROMPT $E[%F%;%F%p >> RESET.BAT
- ECHO. >> RESET.BAT
- REM Spacing of next line is critical!
- ECHO @SET PROMPT=%OP%>> RESET.BAT
- ECHO @ECHO Key with code %F% now reset. >> RESET.BAT
- ECHO Key with code %F% now redefined; type RESET to restore it.
- :END
- FOR %%A IN (F S ST YN CR OP EX1 EX2) DO SET %%A=
-